/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.zonacardio.servlest;
import com.zonacardio.entidad.Usuario;
import com.zonacardio.negocio.UsuarioN;
import com.zonacardio.utilidades.Tiempo;
import java.io.IOException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author sala115
 */
public class UsuarioServlet extends HttpServlet {

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        String codigo = request.getParameter("codigo");
        String nomusuario = request.getParameter("nomusuario");
        String nombre = request.getParameter("nombre");
        String perfil = request.getParameter("perfil");
        String clave = request.getParameter("clave");
        String FechaCreacion = request.getParameter("FechaCreacion");
         String user = request.getParameter("registro");
        //String targetPage = "./index.jsp";
        String targetPage = "./Principal.jsp";
        request.setAttribute("target", "./FPrincipal.jsp");
        request.setAttribute("targetModulo", "./FUsuarios.jsp");
         request.setAttribute("ListaUsuarios", null);

        if ("guardar".equals(request.getParameter("action"))) {
            String men ="";
            UsuarioN negocio = new UsuarioN();
            try {
                negocio.guardar(new Usuario(nomusuario ,codigo,nombre, perfil,clave, FechaCreacion));
                System.out.println("Aquì vamos");
              //  request.setAttribute("mensaje", "El cliente fue guardado con exito.");
                men = "El cliente fue guardado con exito.";
                 List<Usuario> ListaUsuario=negocio.ListadoUsuarios();
                 request.setAttribute("ListaUsuario", ListaUsuario);
                         } catch (Exception ex) {
                Logger.getLogger(UsuarioServlet.class.getName()).log(Level.SEVERE, null, ex);
                  men = ex.getMessage();

            }
            request.setAttribute("mensaje", men);

        }

       if ("editar".equals(request.getParameter("action"))) {
            UsuarioN negocio = new UsuarioN();
            try {

                negocio.editar(new Usuario(nomusuario,codigo, nombre,perfil, clave,  FechaCreacion));
                request.setAttribute("mensaje", "El usuario modficado con éxito.");
                 List<Usuario> ListaUsuario=negocio.ListadoUsuarios();
                 request.setAttribute("ListaUsuario", ListaUsuario);


            } catch (Exception ex) {
                Logger.getLogger(UsuarioServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }
        }

        if ("buscar".equals(request.getParameter("action"))) {
           UsuarioN negocioC = new UsuarioN();
           System.out.println("He dado click");
            try {
                 Usuario us= negocioC.buscarUsuario(codigo);
                 request.setAttribute("us", us);
                request.setAttribute("<hr>mensaje", "Usuario  encontrado con éxito.</hr>");
                    List<Usuario> ListaUsuario=negocioC.ListadoUsuarios();
                 request.setAttribute("ListaUsuario", ListaUsuario);
            } catch (Exception ex) {
                Logger.getLogger(UsuarioServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }
        }

        if ("cancelar".equals(request.getParameter("action"))) {
           UsuarioN negocioC = new UsuarioN();
            try {
                 Usuario us= new Usuario();
                 us.setCodigo("");
                 us.setNombre("");
                 us.setUsuario("");
                 us.setClave("");
                 us.setPerfil("");
                 us.setFechaCreacion("");

                 request.setAttribute("us", us);
               // request.setAttribute("<hr>mensaje", "Usuario  encontrado con éxito.</hr>");
                 List<Usuario> ListaUsuario=negocioC.ListadoUsuarios();
                 request.setAttribute("ListaUsuario", ListaUsuario);

            } catch (Exception ex) {
                Logger.getLogger(UsuarioServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }
        }




        if ("buscarRadio".equals(request.getParameter("action"))) {
           UsuarioN negocioC = new UsuarioN();

            try {
                 Usuario us= negocioC.buscarUsuario(user);
                 request.setAttribute("us", us);
                 List<Usuario> ListaUsuario=negocioC.ListadoUsuarios();
                 request.setAttribute("ListaUsuario", ListaUsuario);
                request.setAttribute("<hr>mensaje", "Usuario  encontrado con éxito.</hr>");
            } catch (Exception ex) {
                Logger.getLogger(UsuarioServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }
        }


        if ("Listar".equals(request.getParameter("action"))) {
            UsuarioN negocioU = new UsuarioN();
            Usuario us= new Usuario();



            try {
                List<Usuario> ListaUsuario=negocioU.ListadoUsuarios();
                request.setAttribute("ListaUsuario", ListaUsuario);
                request.setAttribute("mensaje", "Usuario  encontrado con éxito.");
                us.setCodigo(negocioU.getConsecutivoUsuario());
                us.setFechaCreacion(Tiempo.getFecha());
                request.setAttribute("us", us);
                  request.setAttribute("mensaje", null);
            } catch (Exception ex) {
                Logger.getLogger(UsuarioServlet.class.getName()).log(Level.SEVERE, null, ex);
                request.setAttribute("mensaje", ex.getMessage());
            }
        }

        if("Salir".equals(request.getParameter("action"))){
            request.getSession().invalidate();
            request.setAttribute("target", "./FLoginBox.jsp");
            request.setAttribute("targetModulo", "./FBlanco.jsp");

        }

        request.getRequestDispatcher(targetPage).forward(request, response);
    }// fin proces request



    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
